iT邦幫忙

DAY 3
4

Chrome Extension 開發筆記系列 第 3

Chrome Extension 筆記(03)安全策略

  • 分享至 

  • xImage
  •  

上一篇在最後提到了在 manifest 裡的内容安全策略(CSP)設定,
事實上它還有默認的安全策略, 這篇就來介紹還有哪些應該注意的限制
一、禁用 eval 和 相關函數
例如:

alert(eval("foo.bar.baz"));
window.setTimeout("alert('hi')", 10);
window.setInterval("alert('hi')", 10);
new Function("return foo.bar.baz");

會禁用的原因主要是預防 XSS 攻擊,
但其實在平常 Javascript 的開發上也應該避免使用這種方式,
因為大多數情況都能使用其它來取代 eval 的使用.

二、不允許在 HTML 裡內嵌 JavaScript
例如:
index.html

	Hello World
	<script>alert(1)</script>

必須將 script 標籤裡的程式碼移到外部的 JavaScript 文件
所以改成
index.html

	Hello World
	<script src="app.js"></script>

app.js

alert(1)

以及:
index.html

<button onclick="alert(1)">click</button>

內嵌的事件必須透過 addEventListener 來指定,
所以改成
index.html

	<button id="btn">click</button>
	<script src="app.js"></script>

app.js

document.querySelector('#btn').addEventListener('click', clickHandler);
function clickHandler(e) {
  alert(1);
}

最後推薦一下由 Google 打造的AngularJS 框架,
它的設計模式除了可以避免以上那些禁區,
對想開發應用型的 Chrome Extension 也會是一大利器.

粉絲團:AugularJS.tw


上一篇
Chrome Extension 筆記(02)入門
下一篇
Chrome Extension 筆記(04)跨域後的練習, 讀取 RSS
系列文
Chrome Extension 開發筆記27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言